<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	template="../templates/ui.xhtml">

	<ui:define name="content">

	<h1 class="title ui-widget-header ui-corner-all">AJAX - Validation</h1>
	<div class="entry">
		<p>Validations are executed on the server side and page is updated with the response. In this example, ajax validations are
		executed when input field loses focus(blur).</p>

		<h:form>

			<p:panel header="New Person">
			
				<h:panelGrid columns="3">
					<h:outputLabel for="firstname" value="Name: " />
					
					<p:inputText id="firstname" value="#{pprBean.firstname}" label="Firstname">
						<f:validateLength minimum="5" />
						<p:ajax event="blur" update="msg" />
					</p:inputText>
                    <p:message id="msg" for="firstname" display="icon"/>
					
					
				</h:panelGrid>
			</p:panel>
	
		</h:form>
						
		<h3>Source</h3>
			<p:tabView>
				<p:tab title="ajaxifyValidations.xhtml">
					<pre name="code" class="xml">
&lt;h:form&gt;
		
	&lt;p:panel header="New Person"&gt;
	
		&lt;h:panelGrid columns="3"&gt;
			&lt;h:outputLabel for="firstname" value="Name: " /&gt;
			
			&lt;p:inputText id="firstname" 
					value="\#{pprBean.firstname}" label="Firstname"&gt;
				&lt;f:validateLength minimum="5" /&gt;
				&lt;p:ajax event="blur" update="msg" /&gt;
			&lt;/p:inputText&gt;
            &lt;p:message id="msg" for="firstname" display="icon"/&gt;
			
		&lt;/h:panelGrid&gt;
	&lt;/p:panel&gt;

&lt;/h:form&gt;
					</pre>
				</p:tab>
				
				<p:tab title="PersonBean.java">
				<pre name="code" class="java">
package org.primefaces.examples.view;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

public class PersonBean {

	private String firstname;
	
	private String surname;

	public String getFirstname() {
		return firstname;
	}
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	public String getSurname() {
		return surname;
	}
	public void setSurname(String surname) {
		this.surname = surname;
	}
	
	public void savePerson(ActionEvent actionEvent) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Welcome " + firstname + " " + surname + "!"));
	}
}
</pre>
				</p:tab>
			</p:tabView>
						
		</div>
			
	</ui:define>
</ui:composition>